package servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import coneccion.DocumentoIdentidadConsultas;
import coneccion.CandidatosConsultas;
import coneccion.EstudiantesConsultas;
import coneccion.PropiedadesSistemaConsultas;

import objetos.DocumentoIdentidad;
import objetos.Candidato;
import utils.Constantes;

/**
 * 
 */
public class Resultados extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Resultados() {
        super();

    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		processRequest(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		processRequest(request, response);
	}
	
	protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
		
		request.setCharacterEncoding( "UTF-8");
		PropiedadesSistemaConsultas propiedadesSistemaConsultas = new PropiedadesSistemaConsultas();
		String estadoVotacion = propiedadesSistemaConsultas.getEstadoVotacion();
		List<Candidato> listaCandidatos = null;
		Integer cantidadVotantes = null;
		Integer asistentes = null;
		Integer ausentes = null;
		if(Constantes.ESTADO_VOTACION_FINALIZADA.equals(estadoVotacion)){
			CandidatosConsultas candidatosConsultas = new CandidatosConsultas();
			listaCandidatos = candidatosConsultas.getCandidatosParaConteoVotos();
			
			EstudiantesConsultas estudiantesConsultas = new EstudiantesConsultas();
			cantidadVotantes = estudiantesConsultas.getCantidadEstudiantes(null);
			int votAsistentes = 0;
			for(Candidato c:listaCandidatos){
				votAsistentes += c.getCantidadVotos().intValue();
			}
			asistentes = Integer.valueOf(votAsistentes);
			ausentes = Integer.valueOf(cantidadVotantes.intValue()-votAsistentes);
		}
		request.setAttribute("asistentes", asistentes);
		request.setAttribute("ausentes", ausentes);
		request.setAttribute("cantidadVotantes", cantidadVotantes);
		request.setAttribute("listaCandidatos", listaCandidatos);
		request.setAttribute("estadoVotacion", estadoVotacion);
		RequestDispatcher disp = request.getRequestDispatcher("pages/admin/resultados.jsp");
		disp.forward(request, response);
	}

}
